AWS SAM
https://gyazo.com/561c9930817fcaa5b592a4f0b8018ea4
概要
サーバレスなサービスのデプロイに特化したCloudFormationの拡張
テンプレートからCFを生成する
CFを実行するコマンドなのでCFの知識があると良い
lambdaにrequires.txtとかを宣言しておくだけで依存とかも全部zipにまとめてくれるからやりやすい
lambdaの開発をする時はsamを使うのがベストかも
lambda+api gateway、lambda+step functionsをサクッとつくれるのは便利
SAM CLI
init
プロジェクトテンプレートからsamのフォルダ作成
sam init --location https://github.com/serverlesspub/imagemagick-aws-lambda-2
build
ローカルに依存関係などをダウンロード
.プロジェクト名が成果物としてできる
deploy --guided
local start-api
ローカルでlambda/api gatewayのテスト環境を起動してくれる
実際にlocalhots:3000/helloみたいな感じでテストできる
validate
sam templateの記述が正しいか確認する
awsの権限エラーが出たので、samcliアプリ自体が構文確認をしているわけではなく、CloudFormationに送ってそこでチェックしているんだろうな。
イベントjsonのサンプルを生成する
sam local generate-event s3 put
sam initとかしていなくてもこれだけで独立して動く
サーバレスリポジトリ
SAMテンプレートで書かれた出来合いのアプリが集められてる
aws applicationsページからワンポチでlambda layerをデプロイできる
自分で一から作りたい場合は以下の手順
code:text
make all
make deploy DEPLOYMENT_BUCKET=hogehoge
hiroki.icon無事作成できたけど、けっこうビルドに時間かかったから、ワンポチでデプロイするだけでよかったわ
参照
リポジトリ
serverless flameworkとの比較